/*************************************************
 * 描述：侧边栏菜单控件
 *
 * File：cxisidebarmenu.h
 * Author：zhangzhiming@mozihealthcare.cn
 * Date：25-9-23
 * Update：
 * ************************************************/
#ifndef CXISIDEBARMENU_H
#define CXISIDEBARMENU_H
#include <QTreeWidgetItem>
#include <QWidget>

#include <controls/export.h>

class  CxiSideBarMenuPrivate;

class CXI_CONTROLS_EXPORT CxiSideBarMenu : public QWidget
{
	Q_OBJECT
public:
	enum SideBarCorner
	{
		Top,
		Bottom
	};
	explicit CxiSideBarMenu(QWidget* parent = 0);
	~CxiSideBarMenu();

	/**
	 * 构造菜单
	 * @param items 森林节点
	 */
	void buildMenu(const QList<QTreeWidgetItem*>& items);

	/**
	 * 添加菜单项
	 * @param item 菜单项
	 */
	void addMenu(QTreeWidgetItem* item);

	/**
	 * 添加菜单项
	 * @param title 菜单标题
	 */
	QTreeWidgetItem* addMenu(const QString& title);

	/**
	 * 设置CornerWidget
	 * @param widget
	 */
	void setWidget(QWidget* widget,SideBarCorner = Top);

	/**
	 * 清除菜单项
	 */
	void clearMenu();
signals:
	void itemTriggerd(QTreeWidgetItem* action);
private slots:
	void onItemTriggered(QTreeWidgetItem* item);
private:
	Q_DECLARE_PRIVATE(CxiSideBarMenu)
	QScopedPointer<CxiSideBarMenuPrivate> d_ptr;
};


#endif//CXISIDEBARMENU_H
